perm filename PALSAI.SAI[PNT,HE] blob
sn#466144 filedate 1979-08-10 generic text, type C, neo UTF8
COMMENT ⊗ VALID 00002 PAGES
C REC PAGE DESCRIPTION
C00001 00001
C00002 00002 BEGIN "PALSAI"
C00005 ENDMK
C⊗;
BEGIN "PALSAI"
COMMENT THIS PROGRAM IS USED TO TAKE THE PAL FILE INTOPS.PAL AND MAKE IT
SAIL READABLE BY PRODUCING JUST THE MAKEOP DEFINITIONS
AND REWRITING THEM OUT ONTO INTOPS.SAI on the PPN of the job calling it;
INTEGER RCHAN,RBRCHAR,REOF,RFLAG;
INTEGER WCHAN,WBRCHAR,WEOF,WFLAG;
INTEGER PCODE_INDEX;
OPEN(RCHAN←GETCHAN,"DSK",0,2,0,1000,RBRCHAR,REOF);
LOOKUP(RCHAN,"INTOPS.PAL[AL,HE]",RFLAG);
IF RFLAG THEN OUTSTR("
COULD NOT LOOKUP FILE INTOPS.PAL[AL,HE]
")
ELSE BEGIN "FOUNDFILE"
STRING LINE,WORD,GARB;
INTEGER BRCHAR;
INTEGER CRBREAK,CHARBREAK,WORDENDBREAK;
SETBREAK(CRBREAK←GETBREAK,'15,'12&'14,"ISNK");
SETBREAK(CHARBREAK←GETBREAK,"ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890",NULL,"IKR");
SETBREAK(WORDENDBREAK←GETBREAK,"ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890",NULL,"XKR");
OPEN(WCHAN←GETCHAN,"DSK",0,0,2,0,0,0);
ENTER(WCHAN,"INTOPS.SAI",WFLAG);
OUT(WCHAN,"COMMENT ⊗ This file is written by program PALSAI.
Any changes made by E will not hold once PALSAI is run again. ⊗;
DEFINE INTOPS ""[]"" = [
");
PCODE_INDEX←0;
WHILE NOT REOF DO
BEGIN "GETALINE"
LINE←INPUT(RCHAN,CRBREAK);
IF LENGTH(LINE) > 6 THEN
BEGIN
IF EQU(LINE[1 TO 6] ,"MAKEOP") THEN
BEGIN "MAKEOP"
OUT(WCHAN,"MAKEOP(");
LINE←LINE[7 TO ∞];
GARB←SCAN(LINE,CHARBREAK,BRCHAR);
WORD←SCAN(LINE,WORDENDBREAK,BRCHAR);
OUT(WCHAN,WORD&",");
GARB←SCAN(LINE,CHARBREAK,BRCHAR);
WORD←SCAN(LINE,WORDENDBREAK,BRCHAR);
OUT(WCHAN,WORD&","&CVS(PCODE_INDEX←PCODE_INDEX+2)&")
");
END;
END;
END "GETALINE";
OUT(WCHAN,"
];");
CLOSE(WCHAN);
RELEASE(WCHAN);
END "FOUNDFILE";
END "PALSAI";